Hệ thống quản lý phòng khám trực tuyến bằng PHP

1 <?php
2     $currDir = dirname(__FILE__);
3     require(
"{$currDir}/incCommon.php");
4     $GLOBALS[
'page_title'] = $Translation['done!'];
5     include(
"{$currDir}/incHeader.php");
6     $mailsPerBatch =
5;
7
8     ?>
9     <style>
10         #sendmail-debug{ height: 20em; overflow: auto; }
11     </style>
12     <?php
13
14     $queue = $_REQUEST[
'queue'];
15     $simulate = (isset($_REQUEST[
'simulate']) ? true : false);
16     
if(!preg_match('/^[a-f0-9]{32}$/i', $queue)){
17         echo
"<div class=\"alert alert-danger\">{$Translation['invalid mail queue']}</div>";
18         include(
"{$currDir}/incFooter.php");
19     }
20
21     $queueFile =
"{$currDir}/{$queue}.php";
22     
if(!is_file($queueFile)){
23         echo
"<div class=\"alert alert-danger\">{$Translation['invalid mail queue']}</div>";
24         include(
"{$currDir}/incFooter.php");
25     }
26
27     include($queueFile);
28
29     
// escape new lines in message and remove them in subject
30     $escaped_mailMessage = strip_tags($mailMessage);
31     $escaped_mailSubject = str_replace(
32         array(
"\n", "\r"),
33         
'',
34         strip_tags($mailSubject)
35     );
36
37     
if($simulate){
38         echo
'<pre>' . htmlspecialchars($escaped_mailSubject) . '</pre>';
39         echo
'<pre>' . htmlspecialchars($escaped_mailMessage) . '</pre>';
40     }
41
42     $fLog = @fopen(
"{$currDir}/{$queue}.log", "a");
43     
// send a batch of up to $mailsPerBatch messages
44     $i =
0;
45     echo
'<pre id="sendmail-debug" style="display: none;">';
46     
foreach($to as $email){
47         
if(!isEmail($email)) continue;
48         $i++;
49
50         $mail_status = (rand(
1, 10) % 3 ? true : false);
51         
if(!$simulate){
52             $mail_status = sendmail(array(
53                 
'to' => $email,
54                 
'subject' => $escaped_mailSubject,
55                 
'message' => nl2br($escaped_mailMessage),
56                 
'debug' => ($_SESSION["debug_{$queue}"] ? 2 : 0)
57             ));
58         }
59
60         $mail_log = str_replace(
"<EMAIL>", $email, $Translation['sending message ok']);
61         
if($mail_status !== true){
62             $mail_log = str_replace(
"<EMAIL>",$email, $Translation['sending message failed'] . " -- {$mail_status}");
63         }
64         @fwrite($fLog, @date(
"d.m.Y H:i:s") . $mail_log . "\n");
65
66         
if($i >= $mailsPerBatch) break;
67     }
68     echo
'</pre>';
69     @fclose($fLog);
70
71     
if($i < $mailsPerBatch){
72         
// no more emails in queue, so delete queue and unset showDebug
73         @unlink($queueFile);
74
75         $mail_log = @file_get_contents(
"{$currDir}/{$queue}.log");
76         ?>
77         <div
class="page-header">
78             <h1><?php echo $Translation[
'done!'] ; ?></h1>
79         </div>
80         <?php echo $Translation[
'close page'] ; ?>
81         <br><br>
82         <pre style=
"text-align: left;"><?php echo "<b>{$Translation['mail log']}</b>\n{$mail_log}"; ?></pre>
83
84         <?php
if($_SESSION["debug_{$queue}"]){ ?>
85             <div id=
"sendmail-debug-show"></div>
86             <script>
87                 $j(function(){
88                     $j(
'#sendmail-debug').appendTo('#sendmail-debug-show');
89                     $j(
'#sendmail-debug').css({ display : 'block'});
90                 })
91             </script>
92         <?php } ?>
93
94         <?php
95         @unlink(
"{$currDir}/{$queue}.log");
96         unset($_SESSION[
"debug_{$queue}"]);
97         include(
"{$currDir}/incFooter.php");
98     }
99
100     
while($i--){ array_shift($to); }
101
102     
if(!$fp = fopen($queueFile, "w")){
103         ?>
104         <div
class="alert alert-danger">
105             <?php echo str_replace(
"<CURRDIR>", $currDir, $Translation["mail queue not saved"]); ?>
106         </div>
107         <?php
108         include(
"{$currDir}/incFooter.php");
109     }
110
111     fwrite($fp,
'<' . "?php\n");
112     
foreach($to as $recip){
113         fwrite($fp,
"\t\$to[] = '{$recip}';\n");
114     }
115     fwrite($fp,
"\t\$mailSubject = \"" . addcslashes($mailSubject, "\r\n\t\"\\\$") . "\";\n");
116     fwrite($fp,
"\t\$mailMessage = \"" . addcslashes($mailMessage, "\r\n\t\"\\\$") . "\";\n");
117     fwrite($fp,
'?' . '>');
118     fclose($fp);
119
120     
// redirect to mail queue processor
121     
if(!$simulate){
122         redirect(
"admin/pageSender.php?queue={$queue}");
123     }
else{
124         echo
"<a href=\"pageSender.php?queue={$queue}&simulate=1\">{$Translation['next']}</a>";
125     }
126
127     include(
"{$currDir}/incFooter.php");
128 ?>


Gõ tìm kiếm nhanh...